package com.zcsy.manage.service.system;

import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.system.Org;

/**
 * @Title: IOrgService.java
 * @Package： com.zcsy.manage.service
 * @Description: 部门相关服务层接口类
 * @author tanghan barbadosliy@163.com
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2015年7月7日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface IOrgService {

    /**
     * 根据ID查询部门信息
     * 
     * @param id 部门主键
     * @return 部门信息
     */
    Org selectByPrimaryKey(String id);

    /**
     * 根据主键删除用户信息
     * 
     * @param id 用户主键
     * @return 删除结果
     */
    int deleteByPrimaryKey(String id);

    /**
     * 插入部门信息
     * 
     * @param record 部门信息
     * @return 插入结果
     */
    int insert(Org record);

    /**
     * 根据Id更新部门信息
     * 
     * @param record
     * @return
     */
    int updateByPrimaryKey(String orgId, String orgName);

    /**
     * 获取全部的部门列表
     * 
     * @return
     */
    List<Org> getAll();

    /**
     * 获取全路径部门名称
     * 
     * @param departName 所属部门名称
     * @param depart 部门对象
     * @param departMap 所有部门Map
     * @return 全路径部门名称
     */
    String getFullOrgName(String departName, Org depart, Map<String, Org> departMap);

    /**
     * @Title: getOrgByPId
     * @Description: 根据上级Id获取组织列表
     * @param orgPid 上级组织Id
     * @return List<Org> 返回组织列表
     * @throws none
     */
    List<Org> getOrgByPId(String orgPid);

    /**
     * 根据上级组织orgType获取组织列表
     * 
     * @return
     */
    List<Org> queryOrgByType(Integer orgType);
    
    /**
     * @Description 根据主键修改部门<br>
     * @param org 部门对象
     * @return 修改后的执行结果
     * @author yuhaichao yhcjhun@foxmail.com
     * @date 2015年7月27日
     */
    int updateOrg(Org org);
}
